import java.sql.Array;
import java.util.Arrays;

/*
 * @lc app=leetcode.cn id=628 lang=java
 *
 * [628] 三个数的最大乘积
 *
 * https://leetcode.cn/problems/maximum-product-of-three-numbers/description/
 *
 * algorithms
 * Easy (52.34%)
 * Likes:    414
 * Dislikes: 0
 * Total Accepted:    107.9K
 * Total Submissions: 206.1K
 * Testcase Example:  '[1,2,3]'
 *
 * 给你一个整型数组 nums ，在数组中找出由三个数组成的最大乘积，并输出这个乘积。
 * 
 * 
 * 
 * 示例 1：
 * 
 * 
 * 输入：nums = [1,2,3]
 * 输出：6
 * 
 * 
 * 示例 2：
 * 
 * 
 * 输入：nums = [1,2,3,4]
 * 输出：24
 * 
 * 
 * 示例 3：
 * 
 * 
 * 输入：nums = [-1,-2,-3]
 * 输出：-6
 * 
 * 
 * 
 * 
 * 提示：
 * 
 * 
 * 3 
 * -1000 
 * 
 * 
 */

// @lc code=start
class Solution {
    public int maximumProduct(int[] nums) {
        Arrays.sort(nums);
        int[] data;
        if (nums.length<=6) {
            data=nums;
        }
        else{
            data=new int[6];
            data[0]=nums[0];
            data[1]=nums[1];
            data[2]=nums[2];
            data[3]=nums[nums.length-3];
            data[4]=nums[nums.length-2];
            data[5]=nums[nums.length-1];
        }
        int max=Integer.MIN_VALUE;
        for (int i = 0; i < data.length; i++) {
            for (int j = i+1; j < data.length; j++) {
                for (int j2 = j+1; j2 < data.length; j2++) {
                    max=Math.max(max, data[i]*data[j]*data[j2]);
                }
            }
        }
        return max;
        
    }
}
// @lc code=end

